[INFO] cloning repository https://github.com/yrizos/royal-game-of-ur
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yrizos/royal-game-of-ur" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrizos%2Froyal-game-of-ur", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrizos%2Froyal-game-of-ur'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fdc3b0eeb6163b287898d9a121d422a53ed38457
[INFO] testing yrizos/royal-game-of-ur against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrizos%2Froyal-game-of-ur" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/yrizos/royal-game-of-ur
[INFO] finished tweaking git repo https://github.com/yrizos/royal-game-of-ur
[INFO] tweaked toml for git repo https://github.com/yrizos/royal-game-of-ur written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yrizos/royal-game-of-ur on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yrizos/royal-game-of-ur already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 573a054825fc787833f14cad3c9bf5a66f17a76739af02e3a048b79dca2065cb
[INFO] running `Command { std: "docker" "start" "-a" "573a054825fc787833f14cad3c9bf5a66f17a76739af02e3a048b79dca2065cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "573a054825fc787833f14cad3c9bf5a66f17a76739af02e3a048b79dca2065cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "573a054825fc787833f14cad3c9bf5a66f17a76739af02e3a048b79dca2065cb", kill_on_drop: false }`
[INFO] [stdout] 573a054825fc787833f14cad3c9bf5a66f17a76739af02e3a048b79dca2065cb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 704bf55a7e687623c939789140de528d7b748ba16c1823090e1559f0738ee04f
[INFO] running `Command { std: "docker" "start" "-a" "704bf55a7e687623c939789140de528d7b748ba16c1823090e1559f0738ee04f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling compact_str v0.7.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.26.3
[INFO] [stderr]    Compiling ur-core v0.1.0 (/opt/rustwide/workdir/ur-core)
[INFO] [stderr]    Compiling ur-cli v0.1.0 (/opt/rustwide/workdir/ur-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.13s
[INFO] running `Command { std: "docker" "inspect" "704bf55a7e687623c939789140de528d7b748ba16c1823090e1559f0738ee04f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "704bf55a7e687623c939789140de528d7b748ba16c1823090e1559f0738ee04f", kill_on_drop: false }`
[INFO] [stdout] 704bf55a7e687623c939789140de528d7b748ba16c1823090e1559f0738ee04f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f1f5b8db8bb24fed44d92a3cadea4c6b163e3d412a8c5bb3418aefbd296b6eea
[INFO] running `Command { std: "docker" "start" "-a" "f1f5b8db8bb24fed44d92a3cadea4c6b163e3d412a8c5bb3418aefbd296b6eea", kill_on_drop: false }`
[INFO] [stderr]    Compiling ur-core v0.1.0 (/opt/rustwide/workdir/ur-core)
[INFO] [stderr]    Compiling ur-cli v0.1.0 (/opt/rustwide/workdir/ur-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.77s
[INFO] running `Command { std: "docker" "inspect" "f1f5b8db8bb24fed44d92a3cadea4c6b163e3d412a8c5bb3418aefbd296b6eea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1f5b8db8bb24fed44d92a3cadea4c6b163e3d412a8c5bb3418aefbd296b6eea", kill_on_drop: false }`
[INFO] [stdout] f1f5b8db8bb24fed44d92a3cadea4c6b163e3d412a8c5bb3418aefbd296b6eea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a7d7cfd2f1fc8808e50b573b3636fff53161e6155cb5712aa2411da2d844541f
[INFO] running `Command { std: "docker" "start" "-a" "a7d7cfd2f1fc8808e50b573b3636fff53161e6155cb5712aa2411da2d844541f", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ur-9fcffdde6feb4116)
[INFO] [stdout] 
[INFO] [stdout] running 94 tests
[INFO] [stdout] test animation::tests::test_capture_flash_counts_down ... ok
[INFO] [stdout] test animation::tests::test_capture_flash_finishes_at_one ... ok
[INFO] [stdout] test animation::tests::test_done_is_noop ... ok
[INFO] [stdout] test animation::tests::test_dice_animation_counts_down ... ok
[INFO] [stdout] test animation::tests::test_piece_move_advances_step_when_frame_reaches_zero ... ok
[INFO] [stdout] test animation::tests::test_piece_move_counts_down_frame_before_advancing ... ok
[INFO] [stdout] test animation::tests::test_tick_calls_tick_auto_roll ... ok
[INFO] [stdout] test animation::tests::test_tick_calls_tick_forfeit_delay ... ok
[INFO] [stdout] test app::gameplay::tests::test_ai_roll_pushes_log_entry_with_player2 ... ok
[INFO] [stdout] test app::gameplay::tests::test_apply_move_sets_pending_roll_when_ai_move_returns_to_human ... ok
[INFO] [stdout] test app::gameplay::tests::test_apply_move_sets_last_opponent_roll_from_ai_move ... ok
[INFO] [stdout] test app::gameplay::tests::test_begin_game_sets_pending_roll_for_player1 ... ok
[INFO] [stdout] test app::gameplay::tests::test_handle_nav_moves_cursor_when_legal_moves_present ... ok
[INFO] [stdout] test app::gameplay::tests::test_handle_nav_no_op_when_no_legal_moves ... ok
[INFO] [stdout] test app::gameplay::tests::test_human_auto_roll_pushes_log_entry_with_player1 ... ok
[INFO] [stdout] test animation::tests::test_piece_move_completes_when_remaining_empty_and_frame_zero ... ok
[INFO] [stdout] test app::gameplay::tests::test_new_app_auto_roll_fields_initial_state ... ok
[INFO] [stdout] test app::gameplay::tests::test_on_animation_done_sets_forfeit_after_on_no_moves ... ok
[INFO] [stdout] test animation::tests::test_dice_animation_finishes_at_zero ... ok
[INFO] [stdout] test app::gameplay::tests::test_roll_dice_ignored_when_dice_already_rolled ... ok
[INFO] [stdout] test app::gameplay::tests::test_roll_dice_starts_dice_animation ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_auto_roll_blocked_by_active_animation ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_auto_roll_fires_when_deadline_past ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_auto_roll_skipped_on_ai_turn ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_auto_roll_waits_until_deadline ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_forfeit_delay_advances_to_ai_when_deadline_past ... ok
[INFO] [stdout] test app::gameplay::tests::test_tick_forfeit_delay_waits_until_deadline ... ok
[INFO] [stdout] test app::handlers::tests::test_handle_back_from_difficulty_goes_to_title ... ok
[INFO] [stdout] test app::handlers::tests::test_confirm_difficulty_goes_to_diceoff ... ok
[INFO] [stdout] test app::handlers::tests::test_menu_down_clamps_at_max ... ok
[INFO] [stdout] test app::handlers::tests::test_new_app_starts_on_title_screen ... ok
[INFO] [stdout] test app::handlers::tests::test_start_new_game_goes_to_difficulty ... ok
[INFO] [stdout] test app::handlers::tests::test_handle_back_from_pause_goes_to_game ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_bear_off_down_goes_to_pool ... ok
[INFO] [stdout] test app::handlers::tests::test_quit_sets_should_quit ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_down_left_column ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_horizontal_pairs ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos12_up_goes_to_pos13 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_left_from_leftmost_stays ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos1_right_goes_to_pos8 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos4_right_goes_to_pos5 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos9_left_goes_to_pool ... ok
[INFO] [stdout] test app::handlers::tests::test_menu_up_clamps_at_zero ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos10_left_goes_to_bear_off ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_bear_off_right_goes_to_pos10 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_right_from_rightmost_stays ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_up_right_column ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos4_down_goes_to_pos5 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_up_wraps_at_top_row ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_up_left_column ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pool_right_goes_to_pos9 ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pool_up_goes_to_bear_off ... ok
[INFO] [stdout] test app::gameplay::tests::test_roll_dice_ignored_when_animation_active ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_down_right_column ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_down_wraps_at_bottom_row ... ok
[INFO] [stdout] test input::tests::test_escape_maps_to_back_on_difficulty ... ok
[INFO] [stdout] test app::navigation::tests::test_nav_pos12_left_goes_to_pos13 ... ok
[INFO] [stdout] test input::tests::test_h_maps_to_open_help_in_game ... ok
[INFO] [stdout] test app::tests::test_log_entry_uses_ai_label_for_player2 ... ok
[INFO] [stdout] test app::tests::test_log_entry_uses_you_label_for_player1 ... ok
[INFO] [stdout] test input::tests::test_enter_maps_to_confirm_on_title ... ok
[INFO] [stdout] test input::tests::test_j_maps_to_menu_down_on_difficulty ... ok
[INFO] [stdout] test input::tests::test_k_maps_to_menu_up_on_difficulty ... ok
[INFO] [stdout] test input::tests::test_j_maps_to_nav_down_in_game ... ok
[INFO] [stdout] test input::tests::test_k_maps_to_nav_up_in_game ... ok
[INFO] [stdout] test input::tests::test_l_toggles_log_in_game ... ok
[INFO] [stdout] test input::tests::test_left_maps_to_nav_left_in_game ... ok
[INFO] [stdout] test input::tests::test_n_starts_new_game_on_gameover ... ok
[INFO] [stdout] test input::tests::test_q_quits_on_title ... ok
[INFO] [stdout] test input::tests::test_right_maps_to_nav_right_in_game ... ok
[INFO] [stdout] test input::tests::test_space_confirms_on_diceoff ... ok
[INFO] [stdout] test input::tests::test_up_maps_to_nav_up_in_game ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_hidden_active_no_roll ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_last_roll ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_last_roll_player1_when_inactive ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_hidden_inactive ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_pending ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_no_moves ... ok
[INFO] [stdout] test input::tests::test_up_down_scroll_on_help ... ok
[INFO] [stdout] test input::tests::test_esc_maps_to_back_on_help ... ok
[INFO] [stdout] test input::tests::test_escape_maps_to_quit_prompt_in_game ... ok
[INFO] [stdout] test input::tests::test_space_in_game_maps_to_confirm_move ... ok
[INFO] [stdout] test input::tests::test_uppercase_q_quits_on_gameover ... ok
[INFO] [stdout] test input::tests::test_unrecognised_key_returns_none ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_animating ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_result ... ok
[INFO] [stdout] test input::tests::test_uppercase_n_new_game_on_gameover ... ok
[INFO] [stdout] test ui::styled_box::tests::test_styled_box_returns_padded_rect ... ok
[INFO] [stdout] test ui::styled_box::tests::test_scrollable_shows_scroll_indicator ... ok
[INFO] [stdout] test ui::game::tests::test_panel_dice_hidden_renders_empty_boxes ... ok
[INFO] [stdout] test ui::game::tests::test_compute_panel_dice_rosette_pending ... ok
[INFO] [stdout] test ui::styled_box::tests::test_styled_box_tiny_area_does_not_underflow ... ok
[INFO] [stdout] test ui::game::tests::test_render_log_overlay_does_not_panic_with_entries ... ok
[INFO] [stdout] test ui::game::tests::test_render_player_panel_shows_event_msg_in_buffer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 94 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ur_core-fa6e501d8365f9c9)
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test ai::tests::test_ai_depth_1_returns_valid_move ... ok
[INFO] [stdout] test ai::tests::test_ai_does_not_panic_at_depth_0 ... ok
[INFO] [stdout] test ai::tests::test_ai_prefers_rosette_over_neutral_move ... ok
[INFO] [stdout] test ai::tests::test_ai_prefers_capture_over_neutral_move ... ok
[INFO] [stdout] test board::tests::test_bridge_is_columns_0_through_7 ... ok
[INFO] [stdout] test board::tests::test_invalid_squares_row0_cols_4_5 ... ok
[INFO] [stdout] test board::tests::test_path_index_of_roundtrip ... ok
[INFO] [stdout] test ai::tests::test_ai_depth_3_returns_valid_move_and_does_not_panic ... ok
[INFO] [stdout] test board::tests::test_path_player2_covers_correct_squares ... ok
[INFO] [stdout] test board::tests::test_path_player1_covers_correct_squares ... ok
[INFO] [stdout] test board::tests::test_rosette_positions ... ok
[INFO] [stdout] test board::tests::test_valid_square_count_is_20 ... ok
[INFO] [stdout] test player::tests::test_opponent_is_involution ... ok
[INFO] [stdout] test player::tests::test_player_index_player1_is_0 ... ok
[INFO] [stdout] test player::tests::test_player2_opponent_is_player1 ... ok
[INFO] [stdout] test player::tests::test_player_index_player2_is_1 ... ok
[INFO] [stdout] test state::tests::test_can_enter_onto_opponent_non_rosette ... ok
[INFO] [stdout] test state::tests::test_bearing_off_requires_exact_roll ... ok
[INFO] [stdout] test state::tests::test_can_enter_piece_from_pool ... ok
[INFO] [stdout] test state::tests::test_cannot_enter_when_entry_occupied_by_friendly ... ok
[INFO] [stdout] test player::tests::test_player1_opponent_is_player2 ... ok
[INFO] [stdout] test ai::tests::test_ai_prefers_bear_off_over_any_other_move ... ok
[INFO] [stdout] test state::tests::test_capture_metadata_is_set ... ok
[INFO] [stdout] test state::tests::test_capture_blocked_by_rosette ... ok
[INFO] [stdout] test state::tests::test_capture_on_bridge_is_legal ... ok
[INFO] [stdout] test state::tests::test_capture_returns_opponent_piece_to_pool ... ok
[INFO] [stdout] test dice::tests::test_dice_roll_is_deterministic_given_seed ... ok
[INFO] [stdout] test ai::tests::test_evaluate_favours_more_scored_pieces ... ok
[INFO] [stdout] test dice::tests::test_dice_probabilities_sum_to_1 ... ok
[INFO] [stdout] test board::tests::test_invalid_squares_row2_cols_4_5 ... ok
[INFO] [stdout] test state::tests::test_forfeit_turn_advances_to_opponent ... ok
[INFO] [stdout] test state::tests::test_forfeit_turn_returns_none_when_game_over ... ok
[INFO] [stdout] test state::tests::test_forfeit_turn_when_no_legal_moves ... ok
[INFO] [stdout] test state::tests::test_game_state_new_initial_conditions ... ok
[INFO] [stdout] test state::tests::test_friendly_square_blocked ... ok
[INFO] [stdout] test state::tests::test_no_legal_moves_all_destinations_blocked ... ok
[INFO] [stdout] test state::tests::test_no_legal_moves_no_pieces ... ok
[INFO] [stdout] test state::tests::test_no_legal_moves_roll_0 ... ok
[INFO] [stdout] test state::tests::test_non_rosette_passes_turn ... ok
[INFO] [stdout] test state::tests::test_overshoot_not_allowed ... ok
[INFO] [stdout] test state::tests::test_piece_advances_correct_number_of_squares ... ok
[INFO] [stdout] test state::tests::test_rosette_grants_extra_turn ... ok
[INFO] [stdout] test state::tests::test_win_detection_all_7_scored ... ok
[INFO] [stdout] test state::tests::test_rosettes_are_safe_true_blocks_capture_on_rosette ... ok
[INFO] [stdout] test state::tests::test_rosettes_are_safe_false_allows_capture_on_rosette ... ok
[INFO] [stdout] test state::tests::test_rosette_safe_from_capture ... ok
[INFO] [stdout] test state::tests::test_scoring_a_piece ... ok
[INFO] [stdout] test state::tests::test_rosettes_grant_extra_turn_false_switches_player ... ok
[INFO] [stdout] test dice::tests::test_dice_value_always_0_to_4 ... ok
[INFO] [stdout] test state::tests::test_apply_illegal_move_panics - should panic ... ok
[INFO] [stdout] test state::tests::test_apply_move_panics_when_destination_is_unplayed - should panic ... ok
[INFO] [stdout] test ai::tests::test_choose_move_panics_when_no_legal_moves - should panic ... ok
[INFO] [stdout] test state::tests::test_apply_move_panics_when_source_is_scored - should panic ... ok
[INFO] [stdout] test ai::tests::test_ai_depth_4_midgame_does_not_panic ... ok
[INFO] [stdout] test dice::tests::test_dice_probability_distribution_matches_binomial ... ok
[INFO] [stderr]      Running tests/simulation.rs (/opt/rustwide/target/debug/deps/simulation-894f2309b711c5c9)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_1000_random_games_all_complete_with_valid_winner ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.23s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ur_core
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test ur-core/src/dice.rs - dice::Dice::new (line 17) ... ok
[INFO] [stdout] test ur-core/src/dice.rs - dice::Dice::roll (line 36) ... ok
[INFO] [stdout] test ur-core/src/state.rs - state::GameState::new (line 218) ... ok
[INFO] [stdout] test ur-core/src/state.rs - state::GameState::forfeit_turn (line 436) ... ok
[INFO] [stdout] test ur-core/src/state.rs - state::GameRules::move_path (line 130) ... ok
[INFO] [stdout] test ur-core/src/state.rs - state::GameState::apply_move (line 329) ... ok
[INFO] [stdout] test ur-core/src/board.rs - board::BoardShape::is_rosette (line 78) ... ok
[INFO] [stdout] test ur-core/src/state.rs - state::GameState::legal_moves (line 244) ... ok
[INFO] [stdout] test ur-core/src/board.rs - board::Path::index_of (line 154) ... ok
[INFO] [stdout] test ur-core/src/board.rs - board::Path::get (line 139) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a7d7cfd2f1fc8808e50b573b3636fff53161e6155cb5712aa2411da2d844541f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7d7cfd2f1fc8808e50b573b3636fff53161e6155cb5712aa2411da2d844541f", kill_on_drop: false }`
[INFO] [stdout] a7d7cfd2f1fc8808e50b573b3636fff53161e6155cb5712aa2411da2d844541f
